Process share groups [4] provide a way for multiple related processes to share an address space. These processes are not very different from normal Unix processes except for the sharing that they support. Unlike light-weight, user-level threads, processes in a share group are scheduled by the kernel. For multi-processor machines, processes in a share group can execute concurrently.